package com.itheima.api.collection.demo02;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * Collection集合的遍历，本次我们讲解的是使用迭代器进行遍历
 * 迭代器(Iterator)就是遍历集合的专用模式
 *
 * 使用迭代器遍历集合的思想：
 *
 * 1. 获取到迭代器对象
 * 2. 调用迭代器给我们提供的方法进行遍历
 *
 * 怎么获取迭代器对象？
 *
 * Iterator<E> iterator​()返回此集合中元素的迭代器。
 *
 * 迭代器给我们提供了那些方法供我们进行使用？
 *
 * boolean hasNext​()：判断迭代器中是否有元素
 * E next​()返回迭代中的下一个元素。
 *
 */
public class CollectionDemo01 {

    public static void main(String[] args) {

        // 1. 通过多态的方式去创建一个Collection集合对象
        Collection<String> col = new ArrayList<String>() ;

        // 2. 添加元素
        col.add("hello") ;
        col.add("world") ;
        col.add("java") ;
        col.add("itheima") ;

        // 3. 获取到迭代器对象
        // Iterator<E> iterator​()返回此集合中元素的迭代器。
        Iterator<String> iterator = col.iterator() ;

        // E next​()返回迭代中的下一个元素
        // boolean hasNext​()：判断迭代器中是否有元素
        while(iterator.hasNext()) {
            System.out.println(iterator.next());
        }
//        if(iterator.hasNext()) {
//            System.out.println(iterator.next());
//        }
//
//        if(iterator.hasNext()) {
//            System.out.println(iterator.next());
//        }
//
//        if(iterator.hasNext()) {
//            System.out.println(iterator.next());
//        }
//
//        if(iterator.hasNext()) {
//            System.out.println(iterator.next());
//        }
//
//        if(iterator.hasNext()) {
//            System.out.println(iterator.next());
//        }

//        System.out.println(iterator.next());
//        System.out.println(iterator.next());
//        System.out.println(iterator.next());

        /**
         * 如果没有元素了就直接抛出异常了
         */
//        System.out.println(iterator.next());        // NoSuchElementException， 没有元素的异常

    }

}






















